package br.com.minilocadora.service.implementacao;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import br.com.minilocadora.dao.FuncionarioDao;
import br.com.minilocadora.modelo.Funcionario;
import br.com.minilocadora.service.FuncionarioService;

@Service
public class FuncionarioServiceImpl implements FuncionarioService {

	@Autowired
	private FuncionarioDao funcionarioDao;
	
	@Transactional(propagation = Propagation.REQUIRED)
	@Override
	public Integer incluir(Funcionario funcionario) throws Exception {
		
		return funcionarioDao.incluir(funcionario);
	}

	@Transactional(propagation = Propagation.REQUIRED)
	@Override
	public void excluir(Funcionario funcionario) throws Exception {
		
		funcionarioDao.excluir(funcionario);
		
	}

	@Transactional(propagation = Propagation.REQUIRED)
	@Override
	public void alterar(Funcionario funcionario) throws Exception {
		
		funcionarioDao.alterar(funcionario);
		
	}

	@Override
	public List<Funcionario> listar(Integer first, Integer pageSize,
			String sortField, String ordenacao, Map<String, String> filters)
			throws Exception {
		// TODO Auto-generated method stub
		return funcionarioDao.listar(first, pageSize, sortField, ordenacao, filters);
	}

	@Override
	public Integer totalDeRegistro() throws Exception {
		// TODO Auto-generated method stub
		return funcionarioDao.totalDeRegistro();
	}

}
